package top.lyjwn.todo.resources.service;

import top.lyjwn.todo.common.template.R;
import top.lyjwn.todo.resources.data.FileResource;
import top.lyjwn.todo.resources.util.FileUtil;

import java.util.List;

/**
 * 文件资源服务
 *
 * @author luoyujie
 */
public interface FileResourceService {

    /**
     * 保存资源
     *
     * @param referUsers   可查看用户
     * @param isPublic     是否公开
     * @param fileName
     * @param fileResource
     * @return
     */
    R save(String referUsers, Boolean isPublic, String fileName, byte[] fileResource);

    /**
     * 保存资源列表
     *
     * @param referUsers    可查看用户
     * @param isPublic      是否公开
     * @param fileResources
     * @return
     */
    R save(String referUsers, Boolean isPublic, List<FileResource> fileResources);


    /**
     * 更新资源
     *
     * @param fileResource
     * @return
     */
    R update(FileResource fileResource);

    /**
     * 删除资源
     *
     * @param name
     * @return
     */
    R delete(String name);

    /**
     * 根据文件名查找资源
     *
     * @param name
     * @return
     */
    R<FileResource> findByName(FileUtil.OnFileOut onFileOut, String name);
}
